package com.ruoyi.system.service.impl;

import java.util.List;

import com.alibaba.fastjson2.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.TbFileDtlMapper;
import com.ruoyi.system.domain.TbFileDtl;
import com.ruoyi.system.service.ITbFileDtlService;

/**
 * 消息记录Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-11-13
 */
@Service
public class TbFileDtlServiceImpl implements ITbFileDtlService 
{
    @Autowired
    private TbFileDtlMapper tbFileDtlMapper;

    /**
     * 查询消息记录
     * 
     * @param fileName 消息记录主键
     * @return 消息记录
     */
    @Override
    public TbFileDtl selectTbFileDtlByFileName(String fileName)
    {
        return tbFileDtlMapper.selectTbFileDtlByFileName(fileName);
    }

    /**
     * 查询消息记录列表
     * 
     * @param tbFileDtl 消息记录
     * @return 消息记录
     */
    @Override
    public List<TbFileDtl> selectTbFileDtlList(TbFileDtl tbFileDtl)
    {
        List<TbFileDtl> tbFileDtls = tbFileDtlMapper.selectTbFileDtlList(tbFileDtl);
        tbFileDtls.forEach(x -> {
            JSONObject jsonObject = new JSONObject();
            if("2".equals(x.getSendStatus()) || "3".equals(x.getSendStatus())) {
                x.setSendStatus("消息发送成功");
                jsonObject.fluentPut("port", "port关系校验成功");
                if("99700070000".equals(x.getRecvSysCode())) {
                    jsonObject.fluentPut("传输类型", "一对多传输")
                            .fluentPut("增全量", "增全量校验通过");
                } else {
                    jsonObject.fluentPut("传输类型", "一对一传输");
                }
                jsonObject.fluentPut("message", "通知消息发送成功");
                x.setMsg("通知消息发送成功");
            } else {
                x.setSendStatus("消息发送失败");
                jsonObject.fluentPut("message", "通知消息发送失败，失败具体原因请查看日志");
                x.setMsg("通知消息发送失败");
            }
            jsonObject.fluentPut("发送方", x.getSendSysCode())
                    .fluentPut("接收方", x.getRecvSysCode())
                    .fluentPut("文件名", x.getFileName());
            x.setInfo(jsonObject.toJSONString());
        });
        return tbFileDtls;
    }

    /**
     * 新增消息记录
     * 
     * @param tbFileDtl 消息记录
     * @return 结果
     */
    @Override
    public int insertTbFileDtl(TbFileDtl tbFileDtl)
    {
        return tbFileDtlMapper.insertTbFileDtl(tbFileDtl);
    }

    /**
     * 修改消息记录
     * 
     * @param tbFileDtl 消息记录
     * @return 结果
     */
    @Override
    public int updateTbFileDtl(TbFileDtl tbFileDtl)
    {
        return tbFileDtlMapper.updateTbFileDtl(tbFileDtl);
    }

    /**
     * 批量删除消息记录
     * 
     * @param fileNames 需要删除的消息记录主键
     * @return 结果
     */
    @Override
    public int deleteTbFileDtlByFileNames(String[] fileNames)
    {
        return tbFileDtlMapper.deleteTbFileDtlByFileNames(fileNames);
    }

    /**
     * 删除消息记录信息
     * 
     * @param fileName 消息记录主键
     * @return 结果
     */
    @Override
    public int deleteTbFileDtlByFileName(String fileName)
    {
        return tbFileDtlMapper.deleteTbFileDtlByFileName(fileName);
    }
}
